-----------------------------------------------------------------------------

***********************************

        CHANGES file for MX

***********************************

MX 1.2.0g (December 18):
------------------------

BUG FIXES:
1. Fix ethernet over Myrinet *major* performance problem introduced in 
 1.2.0f, upgrade from 1.2.0f is mandatory for anybody using ethernet
 over Myrinet.

ENHANCEMENTS:
1. MacOSX/Intel "beta" support
2. Support ethernet bridging or connectivity across 2Z linecards.
3. DESTDIR=... in "make install" now as its GNU semantics, old
   behavior (overriding installation dir) is done with the more "standard"
    make install prefix=<...>

MX 1.2.0f (November 27):
------------------------

BUG FIXES:
1. Correctly propagate nacks to application (to avoid
   all communication errors being reported as "timed-out").
2. Fix a rare of possible message corruption occuring
  - either if interrupts delivery is delayed by the system for a very long time.
  - or in case of network reordering with a very specific combination of buffers alignement
  

ENHANCEMENTS:
1. Solaris release.
2. Debugging functionality for MacOSX
3. Preliminary MacOSX/Intel support
4. Linux: use PAT extensions to enable write-combining
5. New FMS 1.2.1 (see fma/CHANGES)

MX 1.2.0e (October 2):
------------------------

BUG FIXES:
1. Correctly propagate nacks to application (to avoid
   all communication errors being reported as "timed-out").
    

ENHANCEMENTS:
1. Solaris release.
2. Debugging functionality for MacOSX

MX 1.2.0d (September 8):
------------------------

BUG FIXES:
1. Better reporting of communication errors.

ENHANCEMENTS:
1. experimental support for:
   mx_iconnect(), mx_disconnect(),
2. better handling of client-server situations where one peer reboot or disappear/reappear.
3. ppc: use altivec for 10g case, remove "guarded" bit from IO mappings.
4. performance optimization for huge pages
5. 2.6.18 support

MX 1.2.0c (July 28):
---------

BUG FIXES:
1. Fix first 8 byte corruption of small messages, occuring
 with N->1 stream pattern or heavy contention.
 

ENHANCEMENTS:
1. Upgrade to fma-1.1.4 (see fma/CHANGES)


MX 1.2.0b:
----------

ENHANCEMENTS:
1. Better overlap between computation and communication

MX 1.2.0a:
----------

BUG FIXES:
1. Fix rare problem in mx_connect


MX 1.2.0 (June 10, 2006):
---------

ENHANCEMENTS:
1. Major rework of firmware and lib
2. New API function mx_test_any() and mx_wait_any()
3. available on 10g NICs

MX-2G 1.1.3 (June 1st, 2006)
------------

BUG FIXES:
1. Fix bug in FMS
2. Fix PT2PT support in FMA.

ENHANCEMENTS:
1. Linux: Add support for hugepages.
2. Linux: Allow read-only data when sending large messages.

MX-2G 1.1.2 (May 17, 2006)
-----------

BUG FIXES:
1. Increase watchdog timeout to avoid false positive on ppc64.
2. Better PCI parity error detection.
3. Fix interrupt error path to dump the queue only once.
4. Fix missing mx_cancel and mx_register_unexp_callback in the kernel lib.
5. Fix MSI.
6. Improve error reporting in the library.

ENHANCEMENTS:
1. Upgrade FMA to version 1.1.1, see fma/CHANGES for details.
2. Support for Linux kernel version 2.6.16.
3. Use a bigger portion of the IOMMU (when not shared) on ppc64.
4. Do not display inactive peers in mx_info by default,
   use -a to get all peers (previous behavior).
5. Document environment variables in the README.
6. Support Solaris 10 on both Sparc and amd64 platforms.

MX-2G 1.1.1 (January 13, 2006)
-----------

BUG FIXES:
1. Fix MCP race causing Lanai Memory error.
2. Make mx_cancel/mx_register_unexp_callback available in the kernel.
3. Fix accounting associated with the MX_PARAM_UNEXP_QUEUE_MAX option
   when used with self/shmem messages.
4. Fix mx_probe()/mx_register_unexp_callback-invocation reporting incorrect
   length for unexp messages.
5. Fix compilation with 2.6.15 linux kernels.
6. Support for some xserve w/o IOMMU.


MX-2G 1.1.0 ( Nov 9, 2005)
-----------

BUG FIXES:
1. Prevent spurious interrupts on x86/x86_64 machines  (was typically causing
    the interrupt line to become disabled by the OS on power5 machines).
2. Prevent a rogue DMA-read possibly causing problems on IOMMU platforms
 (powerpc64), only occuring in the presence of crc-errors/lost-packets.

MAJOR ENHANCEMENTS:
1. Introduction of the FMS: http://www.myri.com/scs/fms/
     (old mapper still usable with --disable-fms option).

API ADDITIONS:
1. Add new primitive mx_register_unexp_callback() allowing 
    an "active-message" like programmation model.

ENHANCEMENTS:
1. MX_NOMYRINET=1 allows to run simple MX programs without a Myrinet card.
2. Support MSI interrupts.
3. Add an option MX_CSUM=1 (requires --enable-debug) to checksum messages.

MX-2G 1.0.3 ( Oct 5, 2005)
-----------

BUG FIXES:
1. Fix a typo which prevented the endpoint close timeout from
       actually being increased to 10 seconds.
2. Fix a compilation error affecting IA64 when using some 
       Linux 2.4 kernels.


MX-2G 1.0.2 ( Sept 21, 2005)
-----------

BUG FIXES:
1. Fix a typo which would send an Ethernet broadcast packet
       with an MX header, resulting in firmware crashes on remote nodes.
2. Fix a priority problem which could cause general slowdowns, and
       delays when closing endpoints on heavily loaded NICs.
3. Increase the time the driver will wait to close an endpoint to
       10 seconds, to ensure that the driver does not prematurely declare the
       firmware dead.
4. Fix driver bug which could result in a kernel oops on Linux/ppc64.
5. Eliminated a race which could lead to data corruption when
       bringing the myri interface down and then up again on a heavily
       loaded network.
6. Fix linux symbol versioning to ensure dlsym() will pick the right
       function pointer.
7. Disabled experimental SRAM parity error recovery code until it
       is completed in a future release.

ENHANCEMENTS:
1. Improved debugging support.
2. Support for Linux kernel version >= 2.6.11 on powerpc64.


MX-2G 1.0.1 ( August 22, 2005)
-----------

BUG FIXES:
1. Fix a bug in the route-updates mechanism which was causing a range 
        of firmware problems.
2. Fix a shmem bug in Linux (causing "mx__direct failed" error message).
3. Fix a bug causing mx_issend to always use the network, possibly
        causing a message-ordering problem if mx_isend was using shared-mem 
        communications.
4. Don't rely or install mx_auto_config.h to avoid potential conflicts 
        with the use of define PACKAGE_xxx for applications also using autoconf.
5. Fix buffer leaks in the ethernet/ip linux driver, which were causing
        connections to stall.
6. Fix a bug related to the use of the MX_PARAM_UNEXP_QUEUE_MAX option 
        to mx_open_endpoint(), when sending messages unidirectionally with a 
        slow receiver().
MacOSX updates:
7. MacOSX will work correctly on machines with more than 4GB.
8. Fixed a bug where the memory size on MacOSX 10.3 was detected
        as 2GB for all memory sizes 2GB and larger.
9. Worked around limitations in MacOSX which could lead to data corruption 
        when using MX shmem to exchange messages larger than 256MB, or messages 
        which crossed a 256MB boundary in the address space of the receiver.
10. Make more efficient use of the IOMMU.
11. Other MacOSX bug fixes

ENHANCEMENTS:
1. Windows port.
2. Support point-2-point routes:
  * don't require a network for same-NIC communications
  * properly distinguish pt2pt routes from no route
3. Support for newer/upcoming linux kernels.
4. Addition of a mx_bug_report script to help report system
	information on linux platforms.
5. Shared-memory performance improvements.
6. Add ability to build binary rpms in the makefile.

MX API CHANGES/ADDITIONS:
1. Add MX_PORT_COUNT key to mx_get_info()


MX-2G 1.0.0 (June 14, 2005)
-----------
Initial release

-----------------------------------------------------------------------------
